<?php
namespace Newadmin\Controller\Common;
use Think\Controller;
class CommonController extends Controller {
    public $base_url;
    /*
     * 初始化一下基础数据
     */
    public function _initialize() {

        $this->base_url = "http://".I('server.HTTP_HOST');
        $this->_chk_if_auth();

        //计算获取当前页面的控制器名+方法名
        $active_name = CONTROLLER_NAME.'_'.ACTION_NAME;
        $active_name = str_replace('/', '_', $active_name);
        
        //加载资源路径
        $this->assign('resource_path',C("resource_path"));
        
        //模块名称
        $this->assign("module_name", "模块名称");
        
        /*
         * 一级标题
         * 二级标题
         * 
         */
        $this->assign("first_title", "一级标题");
        $this->assign("second_title", "二级标题");
        $this->assign('active_name',$active_name);
        $this->assign("base_url", $this->base_url);
    }
    
    
    /*
     * 空白页的处理
     */
    public function _empty() {
        echo "404";
    }
    
    /**
    * 生成随机验证码
    * @return  string
    */
   protected function random_code() {
        /* 选择一个随机的方案 */
        mt_srand((double) microtime() * 1000000);
        return str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
    }
    
    
    /*
     * 判断是否授权
     */
    public function _chk_if_auth() {
        $exclude = array('logout','login');
        if(!in_array(ACTION_NAME,$exclude))
        {
            if(!session("?admin"))
            {
                $this->error("请先登录",U('Newadmin/Common/Index/login'));
            } 
        } 
        
    }
    
    
    /*
     * 注销的操作 
     */
    public function logout() {
        session(null);
        redirect(U('Newadmin/Common/Index/login'));
        
    }
    
     /**
     * 发送HTTP请求方法，目前只支持CURL发送请求
     * @param  string $url    请求URL
     * @param  array  $param  GET参数数组
     * @param  array  $data   POST的数据，GET请求时该参数无效
     * @param  string $method 请求方法GET/POST
     * @return array          响应数据
     */
    protected static function http($url, $param, $data = '', $method = 'GET'){
        
//        print_r($data);
        $opts = array(
            CURLOPT_TIMEOUT        => 30,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
        );

        /* 根据请求类型设置特定参数 */
        $opts[CURLOPT_URL] = $url . '?' . http_build_query($param);
        
//        echo $opts[CURLOPT_URL];

        if(strtoupper($method) == 'POST'){
            $opts[CURLOPT_POST] = 1;
            $opts[CURLOPT_POSTFIELDS] = $data;
            
            if(is_string($data)){ //发送JSON数据
                $opts[CURLOPT_HTTPHEADER] = array(
                    'Content-Type: application/json; charset=utf-8',  
                    'Content-Length: ' . strlen($data),
                );
            }
        }

        /* 初始化并执行curl请求 */
        $ch = curl_init();
        curl_setopt_array($ch, $opts);
        $data  = curl_exec($ch);
        $error = curl_error($ch);
        curl_close($ch);

        //发生错误，抛出异常
        if($error) throw new \Exception('请求发生错误：' . $error);
        return  $data;
    }
    
    
    /*
     * 通过 imageid 获取 路径
     */
    public function get_image_url_by_img_id($imgid) {
        $DB = M("fundings_image");
        $res = $DB->find($imgid);
        
        
        return $res['img_url'];
    }
}